Add a testcase for closing display before exit
authorMatthias Clasen <mclasen@redhat.com>
Sat, 29 Jun 2013 23:24:22 +0000 (19:24 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 29 Jun 2013 23:24:22 +0000 (19:24 -0400)
It works right now, lets keep it that way.

testsuite/gtk/Makefile.am
testsuite/gtk/displayclose.c [new file with mode: 0644]

index 9c307b9f462b06306dacd987fd1e0dc2ede7706c..7228a36eebbe8735a68357010747de6bcb82ae37 100644 (file)
@@ -54,6 +54,7 @@ TEST_PROGS +=                         \
        treepath                \
        treeview                \
        window                  \
+       displayclose            \
        $(NULL)
 
 if OS_UNIX
diff --git a/testsuite/gtk/displayclose.c b/testsuite/gtk/displayclose.c
new file mode 100644 (file)
index 0000000..39fd794
--- /dev/null
@@ -0,0 +1,41 @@
+#include <gtk/gtk.h>
+
+int
+main (int argc, char **argv)
+{
+  const gchar *display_name;
+  GdkDisplay *display;
+  GtkWidget *win, *but;
+
+  g_log_set_always_fatal (G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL);
+
+  if (!gtk_parse_args (&argc, &argv))
+    return 1;
+
+  display_name = gdk_get_display_arg_name();
+  display = gdk_display_open(display_name);
+
+  if (!display)
+    return 1;
+
+  gdk_display_manager_set_default_display (gdk_display_manager_get (), display);
+
+  win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  g_signal_connect (win, "destroy",
+                   G_CALLBACK (gtk_main_quit), NULL);
+  g_signal_connect (win, "delete-event",
+                    G_CALLBACK (gtk_widget_destroy), NULL);
+
+  but = gtk_button_new_with_label ("Try to Exit");
+  g_signal_connect_swapped (but, "clicked",
+                           G_CALLBACK (gtk_widget_destroy), win);
+  gtk_container_add (GTK_CONTAINER (win), but);
+
+  gtk_widget_show_all (win);
+
+  gtk_test_widget_wait_for_draw (win);
+
+  gdk_display_close (display);
+
+  return 0;
+}